//
//  ClassMeaningViewController.m
//
//  Created by 周成龙
//

#import "ClassMeaningViewController.h"

@interface ClassMeaningViewController ()

@end

@implementation ClassMeaningViewController
#pragma mark - LifeCycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    // isMemberOfClass: 判断对象是否为某个特定类的实例
    // isKindOfClass: 判断对象是否为某类或者其派生类的实例
    
    NSMutableDictionary *dict = [NSMutableDictionary new];
    
    NSLog(@"isMemberOfClass:NSDictionary-%zd", [dict isMemberOfClass:[NSDictionary class]]);
    NSLog(@"isMemberOfClass:NSMutableDictionary-%zd", [dict isMemberOfClass:[NSMutableDictionary class]]);
    
    NSLog(@"isKindOfClass:NSDictionary-%zd", [dict isKindOfClass:[NSDictionary class]]);
    NSLog(@"isKindOfClass:NSMutableDictionary-%zd", [dict isKindOfClass:[NSMutableDictionary class]]);
    
    /**
     1. 每个实例都有一个纸箱Class对象的指针，用以表明其类型，而这些Class对象则构成了类的继承体系。
     2. 如果对象类型无法在编译期确定，那么就应该使用类型信息查询方法来探知。
     3. 尽量使用类型信息查询方法来确定对象类型，而不要直接比较类对象，因为某些对象可能实现了消息转发功能。
     */
}

@end
